package _11_位运算;

public class _476_数字的补数 {

    public static void main(String[] args) {

        _476_数字的补数 v = new _476_数字的补数();


        System.out.println(v.findComplement(1));

    }


    public int findComplement(int num) {
        // 获取全为1大于他的值
        int res = 1;
        while (res < num) {
            res <<= 1;
            res++;
        }
        return res ^ num;
    }

    // 调用库函数，获得num的位数
    public int findComplement1(int num) {
        return ((1 << Integer.toBinaryString(num).length()) - 1) ^ num;
    }

}
